
package com.jf.cloud.order.vo;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.jf.cloud.common.serializer.ImgJsonSerializer;
import io.swagger.v3.oas.annotations.media.Schema;

/**
 * @author zz
 * @date 2021/6/9 9:25
 */
public class OrderItemDetailVO {

    @Schema(description = "订单项id" )
    private Long orderItemId;

    @Schema(description = "店铺名称" )
    private String shopName;

    @Schema(description = "商品名称" )
    private String spuName;

    @Schema(description = "规格名称" )
    private String skuName;

    @Schema(description = "分类名称" )
    private String categoryName;

    @Schema(description = "分类id" )
    private Long categoryId;

    @Schema(description = "购物车产品个数" )
    private Integer count;

    @Schema(description = "商品供货价(采购价)" )
    private Long itemPurchaseAmount;

    @Schema(description = "商品总金额" )
    private Long spuTotalAmount;

    /**
     * 商品实际金额 = 商品总金额 - 分摊的优惠金额
     */
    @Schema(description = "商品实际金额" )
    private Long actualTotal;

    /**
     * 商家优惠金额[shareReduce-platformShareReduce]
     */
    @Schema(description = "商家优惠金额" )
    private Long multishopReduce;

    @Schema(description = "平台优惠金额" )
    private Long platformShareReduce;

    /**
     * 分销金额[推广员佣金+上级推广员佣金]
     */
    @Schema(description = "分销金额" )
    private Long distributionAmount;

    @Schema(description = "使用积分" )
    private Long useScore;

    @Schema(description = "分账比例" )
    private Double rate;

    /**
     * 平台佣金(商品实际金额 * 分账比例)
     */
    @Schema(description = "平台佣金" )
    private Long platformCommission;

    @Schema(description = "积分抵扣金额" )
    private Long scoreAmount;

    @Schema(description = "会员折扣金额" )
    private Long memberAmount;

    @Schema(description = "平台优惠券优惠金额" )
    private Long platformCouponAmount;

    @Schema(description = "商家优惠券优惠金额" )
    private Long shopCouponAmount;

    @Schema(description = "满减优惠金额" )
    private Long discountAmount;

    @Schema(description = "商家运费减免金额" )
    private Long freeFreightAmount;

    @Schema(description = "平台运费减免金额" )
    private Long platformFreeFreightAmount;

    @Schema(description = "店铺改价优惠金额" )
    private Long shopChangeFreeAmount;

    @Schema(description = "退款金额" )
    private Long refundAmount;

    @Schema(description = "退货数量" )
    private Integer refundCount;

    @Schema(description = "秒杀优惠金额" )
    private Long seckillAmount = 0L;

    @Schema(description = "分账比例" )
    private Double supplierRate;

    @Schema(description = "平台佣金" )
    private Long purchasePlatformCommission;

    @Schema(description = "拼团优惠金额" )
    private Long groupAmount = 0L;

    @Schema(description = "供货价" )
    private Long supplyPriceFee;

    @Schema(description = "供应商图片")
    @JsonSerialize(using = ImgJsonSerializer.class)
    private String supplierPic;

    @Schema(description = "供应商商品名称")
    private String supplierSpuName;

    @Schema(description = "供应商sku名称")
    private String supplierSkuName;

    @Schema(description = "活动类型 具体类型参考枚举类:OrderActivityType")
    private Integer activityType;

    public String getSupplierPic() {
        return supplierPic;
    }

    public void setSupplierPic(String supplierPic) {
        this.supplierPic = supplierPic;
    }

    public String getSupplierSpuName() {
        return supplierSpuName;
    }

    public void setSupplierSpuName(String supplierSpuName) {
        this.supplierSpuName = supplierSpuName;
    }

    public String getSupplierSkuName() {
        return supplierSkuName;
    }

    public void setSupplierSkuName(String supplierSkuName) {
        this.supplierSkuName = supplierSkuName;
    }

    public Integer getActivityType() {
        return activityType;
    }

    public void setActivityType(Integer activityType) {
        this.activityType = activityType;
    }

    public Long getSupplyPriceFee() {
        return supplyPriceFee;
    }

    public void setSupplyPriceFee(Long supplyPriceFee) {
        this.supplyPriceFee = supplyPriceFee;
    }

    public Double getSupplierRate() {
        return supplierRate;
    }

    public void setSupplierRate(Double supplierRate) {
        this.supplierRate = supplierRate;
    }

    public Long getPurchasePlatformCommission() {
        return purchasePlatformCommission;
    }

    public void setPurchasePlatformCommission(Long purchasePlatformCommission) {
        this.purchasePlatformCommission = purchasePlatformCommission;
    }

    public Long getOrderItemId() {
        return orderItemId;
    }

    public void setOrderItemId(Long orderItemId) {
        this.orderItemId = orderItemId;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public String getSpuName() {
        return spuName;
    }

    public void setSpuName(String spuName) {
        this.spuName = spuName;
    }

    public String getSkuName() {
        return skuName;
    }

    public void setSkuName(String skuName) {
        this.skuName = skuName;
    }

    public Long getCategoryId() {
        return categoryId;
    }

    public void setCategoryId(Long categoryId) {
        this.categoryId = categoryId;
    }

    public Integer getCount() {
        return count;
    }

    public void setCount(Integer count) {
        this.count = count;
    }

    public Long getItemPurchaseAmount() {
        return itemPurchaseAmount;
    }

    public void setItemPurchaseAmount(Long itemPurchaseAmount) {
        this.itemPurchaseAmount = itemPurchaseAmount;
    }

    public Long getSpuTotalAmount() {
        return spuTotalAmount;
    }

    public void setSpuTotalAmount(Long spuTotalAmount) {
        this.spuTotalAmount = spuTotalAmount;
    }

    public Long getActualTotal() {
        return actualTotal;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public void setActualTotal(Long actualTotal) {
        this.actualTotal = actualTotal;
    }

    public Long getMultishopReduce() {
        return multishopReduce;
    }

    public void setMultishopReduce(Long multishopReduce) {
        this.multishopReduce = multishopReduce;
    }

    public Long getPlatformShareReduce() {
        return platformShareReduce;
    }

    public void setPlatformShareReduce(Long platformShareReduce) {
        this.platformShareReduce = platformShareReduce;
    }

    public Long getDistributionAmount() {
        return distributionAmount;
    }

    public void setDistributionAmount(Long distributionAmount) {
        this.distributionAmount = distributionAmount;
    }

    public Long getUseScore() {
        return useScore;
    }

    public void setUseScore(Long useScore) {
        this.useScore = useScore;
    }

    public Double getRate() {
        return rate;
    }

    public void setRate(Double rate) {
        this.rate = rate;
    }

    public Long getPlatformCommission() {
        return platformCommission;
    }

    public void setPlatformCommission(Long platformCommission) {
        this.platformCommission = platformCommission;
    }

    public Long getScoreAmount() {
        return scoreAmount;
    }

    public void setScoreAmount(Long scoreAmount) {
        this.scoreAmount = scoreAmount;
    }

    public Long getMemberAmount() {
        return memberAmount;
    }

    public void setMemberAmount(Long memberAmount) {
        this.memberAmount = memberAmount;
    }

    public Long getPlatformCouponAmount() {
        return platformCouponAmount;
    }

    public void setPlatformCouponAmount(Long platformCouponAmount) {
        this.platformCouponAmount = platformCouponAmount;
    }

    public Long getShopCouponAmount() {
        return shopCouponAmount;
    }

    public void setShopCouponAmount(Long shopCouponAmount) {
        this.shopCouponAmount = shopCouponAmount;
    }

    public Long getDiscountAmount() {
        return discountAmount;
    }

    public void setDiscountAmount(Long discountAmount) {
        this.discountAmount = discountAmount;
    }

    public Long getFreeFreightAmount() {
        return freeFreightAmount;
    }

    public void setFreeFreightAmount(Long freeFreightAmount) {
        this.freeFreightAmount = freeFreightAmount;
    }

    public Long getPlatformFreeFreightAmount() {
        return platformFreeFreightAmount;
    }

    public void setPlatformFreeFreightAmount(Long platformFreeFreightAmount) {
        this.platformFreeFreightAmount = platformFreeFreightAmount;
    }

    public Long getShopChangeFreeAmount() {
        return shopChangeFreeAmount;
    }

    public void setShopChangeFreeAmount(Long shopChangeFreeAmount) {
        this.shopChangeFreeAmount = shopChangeFreeAmount;
    }

    public Long getRefundAmount() {
        return refundAmount;
    }

    public void setRefundAmount(Long refundAmount) {
        this.refundAmount = refundAmount;
    }

    public Integer getRefundCount() {
        return refundCount;
    }

    public void setRefundCount(Integer refundCount) {
        this.refundCount = refundCount;
    }

    public Long getSeckillAmount() {
        return seckillAmount;
    }

    public void setSeckillAmount(Long seckillAmount) {
        this.seckillAmount = seckillAmount;
    }

    public Long getGroupAmount() {
        return groupAmount;
    }

    public void setGroupAmount(Long groupAmount) {
        this.groupAmount = groupAmount;
    }

    @Override
    public String toString() {
        return "OrderItemDetailVO{" +
                "orderItemId=" + orderItemId +
                ", shopName='" + shopName + '\'' +
                ", spuName='" + spuName + '\'' +
                ", skuName='" + skuName + '\'' +
                ", categoryName='" + categoryName + '\'' +
                ", categoryId=" + categoryId +
                ", count=" + count +
                ", itemPurchaseAmount=" + itemPurchaseAmount +
                ", spuTotalAmount=" + spuTotalAmount +
                ", actualTotal=" + actualTotal +
                ", multishopReduce=" + multishopReduce +
                ", platformShareReduce=" + platformShareReduce +
                ", distributionAmount=" + distributionAmount +
                ", useScore=" + useScore +
                ", rate=" + rate +
                ", platformCommission=" + platformCommission +
                ", scoreAmount=" + scoreAmount +
                ", memberAmount=" + memberAmount +
                ", platformCouponAmount=" + platformCouponAmount +
                ", shopCouponAmount=" + shopCouponAmount +
                ", discountAmount=" + discountAmount +
                ", freeFreightAmount=" + freeFreightAmount +
                ", platformFreeFreightAmount=" + platformFreeFreightAmount +
                ", shopChangeFreeAmount=" + shopChangeFreeAmount +
                ", refundAmount=" + refundAmount +
                ", refundCount=" + refundCount +
                ", seckillAmount=" + seckillAmount +
                ", supplierRate=" + supplierRate +
                ", purchasePlatformCommission=" + purchasePlatformCommission +
                ", groupAmount=" + groupAmount +
                '}';
    }


}
